package com.nbsaas.boot.product.data.repository;

import com.nbsaas.boot.product.data.entity.PageLayout;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.jpa.repository.support.JpaRepositoryImplementation;
import org.springframework.data.repository.query.Param;

import java.io.Serializable;
import java.util.List;

/**
* 页面布局-数据处理功能
*/
public interface PageLayoutRepository extends JpaRepositoryImplementation<PageLayout, Serializable> {

    /**
     * 根据模板ID查找布局
     */
    List<PageLayout> findByTemplateIdOrderBySort(Long templateId);

    /**
     * 根据布局类型查找
     */
    List<PageLayout> findByLayoutType(String layoutType);

    /**
     * 根据是否显示查找
     */
    List<PageLayout> findByVisible(Boolean visible);

    /**
     * 根据模板ID和布局类型查找
     */
    @Query("SELECT pl FROM PageLayout pl WHERE pl.templateId = :templateId AND pl.layoutType = :layoutType ORDER BY pl.sort")
    List<PageLayout> findByTemplateIdAndLayoutType(@Param("templateId") Long templateId, @Param("layoutType") String layoutType);

    /**
     * 查找可见的布局
     */
    @Query("SELECT pl FROM PageLayout pl WHERE pl.visible = true ORDER BY pl.sort")
    List<PageLayout> findVisibleLayouts();
} 